Function.prototype.my_call = function(context, ...args) {
	// 必须是函数调用
	if (typeof this !== 'function') throw new TypeError('error')
	// 第一个参数不传的话就是window
	context = context || window
	// 在第一个参数挂一个函数并传入参数执行
	let fn = Symbol()
	context[fn] = this //context.fn = this 
	const res = context[fn](...args)
	delete context[fn]
	return res
}


Function.prototype.myCall = function(_this, ...args) {
	if (typeof this !== 'function') throw new TypeError('error')

	_this = _this || window
	let fn = Symbol()
	_this[fn] = this
	let res = _this[fn](...args)
	delete _this[fn]
	return res
}

Function.prototype.call = function(context, ...args) {
	context = context || window;
	let fn = Symbol();
	context[fn] = this;
	let result = context[fn](...args);
	delete context[fn];
	return result;
};